home *** CD-ROM | disk | FTP | other *** search
/ PC-SIG Library 8 / PC-SIG Library CD-ROM (8th Edition) (1990-04).iso / 201_300 / disk0208 / master2.bas (.txt) < prev    next >
Encoding:
GW-BASIC  |  1983-09-29  |  3.8 KB  |  144 lines

  1. 10  SCREEN 0: WIDTH 40:COLOR 14,1,12
  2. 20  CLS
  3. 30  KEY OFF
  4. 40  RANDOMIZE TIMER
  5. 50  GOSUB 1310'SONG
  6. 60  C(1)=INT(RND*6)'Creates four diff random numbers
  7. 70  C(2)=INT(RND*6)'FROM 0 TO 5
  8. 80  IF C(2)=C(1)THEN 70
  9. 90  C(3)=INT(RND*6)
  10. 100  IF C(3)=C(1) OR C(3)=C(2) THEN 90
  11. 110  C(4)=INT(RND*6)
  12. 120  IF C(4)=C(1) OR C(4)=C(2) OR C(4)=C(3) THEN 110
  13. 130  FOR R=1 TO 4
  14. 140  IF C(R)=0 THEN C(R)=70
  15. 150  IF C(R)=1 THEN C(R)=77
  16. 160  IF C(R)=2 THEN C(R)=72
  17. 170  IF C(R)=3 THEN C(R)=68
  18. 180  IF C(R)=4 THEN C(R)=67
  19. 190  IF C(R)=5 THEN C(R)=83
  20. 200  NEXT R
  21. 210  LOCATE 2,13,0,7
  22. 220  PRINT "** MASTERMIND **"
  23. 230  PRINT "           ##################"
  24. 240  PRINT "              by Les Penner"
  25. 250  PRINT:PRINT:PRINT
  26. 260  PRINT"The computer has selected four"
  27. 270  PRINT "different symbols from a choice"
  28. 280  PRINT "of six and placed them in a sequence."
  29. 290  PRINT
  30. 300  PRINT "The choices are: ";CHR$(3);"=H"
  31. 310  PRINT
  32. 320  PRINT TAB(18);CHR$(4);"=D"
  33. 330  PRINT
  34. 340  PRINT TAB(18);CHR$(5);"=C"
  35. 350  PRINT
  36. 360  PRINT TAB(18);CHR$(6);"=S"
  37. 370  PRINT
  38. 380  PRINT TAB(18);CHR$(14);"=M"
  39. 390  PRINT
  40. 400  PRINT TAB(18);CHR$(2);"=F"
  41. 410  PRINT
  42. 420  INPUT "PRESS  <ENTER> TO CONTINUE ",S$
  43. 430  CLS
  44. 440  PRINT:PRINT:PRINT:PRINT:PRINT:PRINT:PRINT
  45. 450  PRINT"Positioning with the space bar, try"
  46. 460  PRINT"to guess the objects as the computer"
  47. 470  PRINT "has arranged them.  The computer "
  48. 480  PRINT "will tell you how many of the ob-"
  49. 490  PRINT"jects are correct and whether they "
  50. 500  PRINT"are in the right or wrong positions."
  51. 520  PRINT:PRINT:PRINT:PRINT:PRINT:PRINT:PRINT:PRINT:PRINT:PRINT
  52. 530  INPUT"PRESS <ENTER> TO CONTINUE ",E$:CLS
  53. 540  DIM PLY(20,15)
  54. 550  DIM A$(20,5):PT=0:PCOL=1
  55. 560  DIM TABLE(20,3)'**SCORE TABLE
  56. 570  FOR T=1 TO 15
  57. 580  FOR COL=1 TO 4
  58. 590  A$(T,COL)="-"     'initializes array
  59. 600  NEXT COL
  60. 610  NEXT T
  61. 630  PT=PT+1:PCOL=1' INCREMENT TURN
  62. 850  GOSUB 1080'prints current array
  63. 860  IF PT<16 THEN 2000 ELSE 870
  64. 870  LOCATE 3,10
  65. 880  FOR L=1 TO 4
  66. 890  IF C(L)=70 THEN PRINT CHR$(2);" ";
  67. 900  IF C(L)=77 THEN PRINT CHR$(14);" ";
  68. 910  IF C(L)=72 THEN PRINT CHR$(3);" ";
  69. 920  IF C(L)=68 THEN PRINT CHR$(4);" ";
  70. 930  IF C(L)=67 THEN PRINT CHR$(5);" ";
  71. 940  IF C(L)=83 THEN PRINT CHR$(6);" ";
  72. 950  NEXT L
  73. 960  IF FLAG=0 THEN 1020'--LOSE ENDING
  74. 970  LOCATE 10, 30
  75. 980  COLOR 20,3
  76. 990  PRINT" YOU   "
  77. 1000  LOCATE 11,30
  78. 1010  PRINT " WIN ! "
  79. 1020  COLOR 4,3
  80. 1030  LOCATE 13,30:PRINT"PRESS <F2>
  81. 1040  LOCATE 14,30:PRINT"TO RESTART
  82. 1050  COLOR 14,1
  83. 1060  LOCATE 21,1,0
  84. 1070  END
  85. 1080  CLS:PRINT
  86. 1090  LOCATE 2,18:PRINT"(RIGHT***CHOICE)  WRONG"
  87. 1100  LOCATE 3,18:PRINT" RT-POS  WR-POS  CHOICE
  88. 1110  LOCATE 3,1:PRINT "COMPUTER ? ? ? ?":PRINT
  89. 1120  FOR T=1 TO 15
  90. 1130  PRINT "TURN";T;
  91. 1140  IF T<10 THEN PRINT"  ";
  92. 1150  IF T=>10 THEN PRINT " ";
  93. 1160  FOR COL=1 TO 4
  94. 1170  PRINT A$(T,COL);" ";
  95. 1180  NEXT COL
  96. 1190  IF T< PT THEN PRINT"  ";TABLE(T,1);"     ";TABLE(T,2);"     ";TABLE(T,3);
  97. 1200  PRINT
  98. 1210  NEXT T
  99. 1220  PRINT STRING$(40,22);
  100. 1230  PRINT"   "; CHR$(3);"=H   ";CHR$(4);"=D   ";CHR$(5);"=C   ";CHR$(6);"=S   ";CHR$(14);"=M   ";CHR$(2);"=F"
  101. 1245  PRINT:PRINT"<SPACE BAR> to move,  <ENTER>=Try These
  102. 1260  T=1:POSITION=0:RIGHT=0
  103. 1270  IF FLAG =1 THEN 870'subroutine for showing correct answer
  104. 1280  IF PT=16 THEN 870'SHOW ANSWER AFTER 15 TRIES
  105. 1285  LOCATE PT+4,10:COLOR 30,3 :PRINT "-";:COLOR 14,1
  106. 1290  RETURN
  107. 1300  END
  108. 1310  PLAY"T145 MB O3EEECDGECFGECD<B>C"'INTRO SONG
  109. 1320  RETURN
  110. 1330  PLAY"MB O1L3CL8DL4E-L4CL3G"'lose song
  111. 1340  RETURN
  112. 1350  PLAY "MB T160 MS O4L6CFG A GFGL3A FF"'win song
  113. 1360  RETURN
  114. 2000  '******* start of keyboard scanning routine
  115. 2005  IN$=INKEY$: IF IN$="" GOTO 2005
  116. 2010  IF IN$=CHR$(32) THEN GOTO 3100'--<SPACE BAR> PRESSED
  117. 2025  IF IN$=CHR$(13) AND A$(PT,1)<>"-" AND A$(PT,2)<>"-" AND A$(PT,3)<>"-"AND A$(PT,4)<>"-" GOTO 2660'----<ENTER> HAS BEEN PRESSED
  118. 2030  IF IN$="F" OR IN$="f" THEN PLY(PT,PCOL)=70: A$(PT,PCOL)=CHR$(2):GOTO 2058
  119. 2035  IF IN$="M" OR IN$="m" THEN PLY(PT,PCOL)=77:A$(PT,PCOL)=CHR$(14):GOTO 2058
  120. 2040  IF IN$="H" OR IN$="h" THEN PLY(PT,PCOL)=72:A$(PT,PCOL)=CHR$(3):GOTO 2058
  121. 2042  IF IN$="D" OR IN$="d" THEN PLY(PT,PCOL)=68:A$(PT,PCOL)=CHR$(4):GOTO 2058
  122. 2045  IF IN$="C" OR IN$="c" THEN PLY(PT,PCOL)=67:A$(PT,PCOL)=CHR$(5):GOTO 2058
  123. 2050  IF IN$="S" OR IN$="s" THEN PLY(PT,PCOL)=83: A$(PT,PCOL)=CHR$(6):GOTO 2058
  124. 2055  BEEP:GOTO 2005
  125. 2058  LOCATE PT+4,PCOL*2+8:COLOR,3:PRINT A$(PT,PCOL):COLOR,1
  126. 2060  GOTO 2005
  127. 2660  FOR PCOL=1 TO 4
  128. 2740  FOR R=1 TO 4
  129. 2750  IF PLY(PT,PCOL)=C(R) AND  PCOL=R THEN POSITION=POSITION+1
  130. 2760  IF PLY(PT,PCOL)=C(R) AND  PCOL<>R THEN RIGHT =RIGHT+1
  131. 2770  NEXT R
  132. 2780  WRONG=4-RIGHT-POSITION
  133. 2790  NEXT PCOL
  134. 2800  TABLE(PT,3)=WRONG: TABLE(PT,1)=POSITION
  135. 2810  TABLE(PT,2)=RIGHT
  136. 2820  IF POSITION =4 THEN FLAG=1
  137. 2830  IF FLAG=1 THEN GOSUB 1350
  138. 2840  IF FLAG=0 THEN GOSUB 1330
  139. 2850  GOTO 630
  140. 3100  LOCATE PT+4,PCOL*2+8:COLOR ,1:PRINT A$(PT,PCOL)
  141. 3110  PCOL=(PCOL)MOD 4+1
  142. 3160  LOCATE PT+4,PCOL*2+8:COLOR 30,3 :PRINT A$(PT,PCOL):COLOR 14,1
  143. 3170  GOTO 2005
  144.